package personal.lijun.skeleton.spring.springcloud.serviceprovider.service;

import personal.lijun.skeleton.spring.springcloud.serviceprovider.data.CalendarUser;
import personal.lijun.skeleton.spring.springcloud.serviceprovider.data.Role;
import personal.lijun.skeleton.spring.springcloud.serviceprovider.data.UserRoleKey;

import java.util.List;

public interface UserRoleService {

    /**
     * 保存用户角色关联信息
     * @param record 用户角色关联信息
     */
    UserRoleKey save(UserRoleKey record);

    /**
     * 增加一个用户角色关联信息
     * @param record 用户角色关联信息
     * @return 用户角色关联信息
     */
    UserRoleKey addNewUserRole(UserRoleKey record);

    /**
     * 更新一个用户角色关联信息
     * @param newRecord 待更新的用户角色关联信息
     * @param oldRecord 被更新的用户角色关联信息
     * @return 用户角色关联信息
     */
    UserRoleKey updateUserRole(UserRoleKey newRecord,UserRoleKey oldRecord);

    /**
     * 删除用户角色关联信息
     * @param userId 用户Id
     * @param roleId 角色Id
     * @return 用户角色关联信息
     */
    UserRoleKey deleteUserRoleByUserIdAndRoleId(int userId,int roleId);

    /**
     * 查询指定用户的关联角色
     * @param userId 用户Id
     * @return
     */
    List<Role> queryUserRoleListByUserId(int userId);

    /**
     * 查询指定角色的关联用户
     * @param roleId
     * @return
     */
    List<CalendarUser> queryUserRoleListByRoleId(int roleId);
}